package ar.edu.unsam.algo3.plantasvszombies.dominio.tst

import ar.edu.unsam.algo3.plantasvszombies.dominio.Batalla
import ar.edu.unsam.algo3.plantasvszombies.dominio.Fila
import ar.edu.unsam.algo3.plantasvszombies.dominio.Jardin
import ar.edu.unsam.algo3.plantasvszombies.dominio.Planta
import ar.edu.unsam.algo3.plantasvszombies.dominio.Zombie
import org.junit.Assert
import org.junit.Before
import org.junit.Test

class TstBatalla {
	Jardin jardin
	Fila fila
	Planta planta
	Zombie zombie
	Batalla batalla

	@Before
	def void init() {
		jardin = new Jardin
		fila = new Fila
		this.fila = fila
		batalla = new Batalla
		jardin.agregarFila(fila)
		this.zombie = new Zombie
		zombie.nombre = "Bailarin"
		zombie.defensa = 80
		zombie.ataque = 10
		zombie.descripcion = "Zombie 10/70"
		batalla.zombie = this.zombie
		batalla.fila = this.fila
	}

	@Test
	def void testBatalla() {
		planta = new Planta
		planta.nombre = "Girasol"
		planta.defensa = 70
		planta.ataque = 20
		planta.descripcion = "Planta 10/70"
		fila.plantas.add(planta)
		System::out.println(fila.PlantaDeAtaque)
		batalla.atacar
		Assert::assertEquals(0, batalla.zombie.salud)
		Assert::assertEquals(30, batalla.fila.PlantaDeAtaque.salud)
		init
	}

	@Test
	def void testBatalla2() {
		planta = new Planta
		planta.nombre = "Cactus"
		planta.defensa = 10
		planta.ataque = 30
		planta.descripcion = "Planta 10/70"
		fila.plantas.add(planta)
		fila.plantas.add(planta)
		batalla.atacar
		Assert::assertEquals(50, batalla.zombie.salud)
		Assert::assertEquals(0, batalla.fila.plantas.size)
	}
}
